In digital signal processing, a cascaded integrator–comb (CIC) is a computationally efficient class of Low-pass filter finite impulse response (FIR) filter that chains N number of integrator and comb filter pairs (where N is the filter's order) to form a decimator or interpolation. In a decimating CIC, the input signal is first fed through N integrator stages, followed by a down-sampler, and then N comb stages. An interpolating CIC (e.g. Figure 1) has the reverse order of this architecture, but with the down-sampler replaced with a zero-stuffer (up-sampler).[
Donadio, Matthew (2000) CIC Filter Introduction "Hogenauer introduced an important class of digital filters called 'Cascaded Integrator-Comb', or 'CIC' for short (also sometimes called 'Hogenauer filters').]
Operation
CIC filters were invented by Eugene B. Hogenauer in 1979
(published in 1981), and are a class of FIR filters used in multi-rate digital signal processing.
Unlike most FIR filters, it has a down-sampler or up-sampler in the middle of the structure, which converts between the high sampling rate of used by the integrator stages and the low sampling rate of used by the comb stages.
Transfer function
At the high sampling rate of a CIC's transfer function in the
z-domain is:
\begin{align}
H(z) &=\left [ \sum_{k=0}^{RM-1}z^{-k} \right ] ^N \\
&= \left ( \frac{1-z^{-RM}}{1-z^{-1}} \right ) ^N
\end{align}
where:
- is the decimation or interpolation ratio,
- is the number of samples per stage (usually 1 but sometimes 2), and
- is the order: the number of comb-integrator pairs.
- * The numerator comes from multiplying negative feedforward comb stages (each is simply multiplication by in the z-domain).
- * The denominator comes from multiplying integrator stages (each is simply multiplication by in the z-domain).
Integrator–comb is simple moving average
An integrator–comb filter is an efficient implementation of a simple 1-order moving-average FIR filter, with division by
omitted. To see this, consider how a simple moving average filter can be implemented recursively by adding the newest sample
to the previous result
and subtracting the oldest sample
\begin{align}
y[n] &= \sum_{k=0}^{RM-1} x[n-k] \\
y[n] &= y[n-1] + \underbrace{x[n] - x[n-RM]}_{\text{comb filter }c[n]}.
\end{align}
The second equality corresponds to a comb filter that gets integrated
Cascaded integrator–comb yields higher-order moving average
Higher-order CIC structures are obtained by cascading
identical simple moving average filters, then rearranging the sections to place all integrators first (decimator) or combs first (interpolator). Such rearrangement is possible because both the combs, the integrators, and the entire structure are linear time-invariant (LTI) systems.
In the interpolating CIC, its upsampler (which normally precedes an interpolation filter) is passed through the comb sections using a Noble identity, reducing the number of delay elements needed by a factor of . Similarly, in the decimating CIC, its downsampler (which normally follows a decimation filter) is moved before the comb sections.
Features
CIC filters have some appealing features:
-
Linear phase response (i.e. constant group delay).
-
Utilize only delay, addition, and subtraction.
-
No expensive multiplication.
-
Bit growth of due to equivalence with moving average.
-
Shape of the filter's main lobe changes very little when the decimation ratio is changed.
Pole-zero plot
In the z-domain, each integrator contributes one pole at
DC bias (
) and one zero at the origin (
). Each comb contributes
poles at the origin and
zeroes that are equally-spaced along the z-domain's
unit circle. CIC filters are implemented with fixed-point arithmetic without any
round-off error to ensure exact cancellation of each comb's zero at DC with each integrator's pole at DC and exact cancellation of one of each comb's pole at the origin with each integrator's zero at the origin, leaving only
poles at the origin per integrator-comb pair. So with
for example, the 1-order pole-zero plot (Figure 2) only has 7 poles in the origin and 7 zeros along the unit circle, not 8. N-order CIC filters will have N times as many poles and zeros in the same locations as the 1-order.
Frequency response
Evaluating
at
provides its frequency response
:
where
is frequency relative to the low sampling rate
and has corresponding angular frequency Plotting the magnitude of this frequency response (Figure 3) shows it is a crude
low-pass filter which looks like a series of successively smaller and smaller "lobes" with soft peaks separated by valleys which null each zero at multiples of
. At large
, the response approximates the following sinc-in-frequency frequency response over a low frequency range:
Typically the gain is normalized by dividing by
, so the DC peak has unity gain. N-order CIC filters are called sinc filters and their frequency response corresponds to multiplying the 1-order's shape on itself N times, resulting in successively greater attenuation. The first sidelobe's peak is approximately .
Sinc filters are commonly used with delta-sigma modulation ADCs just prior to downsampling to the desired output data rate (ODR) of . A sinc filter's frequency response will lie under a envelope, so higher orders have steeper roll off for cutting out more high frequency noise, but will also have a lower Cutoff frequency. Another tradeoff is that a sinc filter's settling time will be , so higher order filters cost additional latency.
The CIC filter's possible range of responses is limited by this shape. Larger amounts of stopband rejection can be achieved by increasing the order, but that increases attenuation in the passband and requires increased bit width for the integrator and comb sections. For this reason, many real-world filtering requirements cannot be met by a CIC filter alone.
Shape compensation
A short to moderate length FIR or infinite impulse response (IIR) filter can compensate for the falling slope of a CIC filter's shape.
Multiple interpolation and decimation rates can reuse the same set of compensation FIR coefficients, since the shape of the CIC's main lobe changes very little when the decimation ratio is changed.
Comparison with other FIR filters
-
CIC filters are used primarily in multi-rate processing. Meanwhile, FIR filter in general are used in a wide array of applications, and can be used in multi-rate processing in conjunction with an interpolator or decimator.
-
CIC filters have low pass frequency characteristics,
while FIR filters can have tailor-made frequency responses, which may include low-pass, high-pass, or band-pass characteristics.
-
CIC filters use only addition and subtraction.
FIR filters use addition, subtraction, but most FIR filters also require multiplication.
-
CIC filters have a specific frequency roll-off,
while low pass FIR filters can have tailor-made roll-off that isn't infinitely steep.
-
CIC filters are in general much more economical than general FIR filters,
but tradeoffs are involved.
-
In cases where only a small amount of interpolation or decimation are needed, FIR filters generally have the advantage. However, when rates change by a factor of 10 or more, achieving a useful FIR filter anti-aliasing stop band requires many FIR taps.
-
For large rate changes, a CIC has a significant advantage over a FIR filter with respect to architectural and computational efficiency.
-
Additionally, CIC filters can typically be reconfigured for different rates by changing nothing more than the decimation/interpolation section assuming the bit width of the integrators and comb sections meets certain mathematical criteria based on the maximum possible rate change.
-
CIC filter uses only fixed point math, while FIR filters can use fixed or floating point math.
-
This is necessary because, as a recursively implemented FIR filter, a CIC filter relies on exact cancellation of poles from the integrator sections by zeros from the comb sections. While the reasons are less than intuitive, an inherent characteristic of the CIC architecture is that if fixed bit length overflows occur in the integrators, they are corrected in the comb sections.
Notes
See also
-
Decimation
-
Delta-sigma modulation - ADC technique that may use CIC for decimation
External links